package com.note.feng.leetcode.algorithms.easy.nine;

import java.util.Arrays;

public class NineHundredSeventySix {
    /**
     * 976 三角形的最大周长
     * 给定由一些正数（代表长度）组成的数组 nums ，返回 由其中三个长度组成的、面积不为零的三角形的最大周长 。如果不能形成任何面积不为零的三角形，返回 0。
     *
     * 示例 1：
     *
     * 输入：nums = [2,1,2]
     * 输出：5
     * 示例 2：
     *
     * 输入：nums = [1,2,1]
     * 输出：0
     *
     * 提示：
     *
     * 3 <= nums.length <= 104
     * 1 <= nums[i] <= 106
     *
     * 来源：力扣（LeetCode）
     * 链接：https://leetcode.cn/problems/largest-perimeter-triangle
     */
    /**
     * 解法：排序 + 贪心
     * 先把数组排序，然后倒序遍历数组，若满足nums[i] < nums[i - 1] + nums[i - 2]，
     * 直接返回它们的和，就是最大周长
     * @param nums
     * @return
     */
    public int largestPerimeter(int[] nums) {
        Arrays.sort(nums);
        for (int i = nums.length - 1; i >= 2; i--) {
            if(nums[i] < nums[i - 1] + nums[i - 2]){
                return nums[i] + nums[i - 1] + nums[i - 2];
            }
        }
        return 0;
    }
}
